angular.module('app').config(($stateProvider) => {

    $stateProvider.state('app.popup', {
        url         : '/popup',
        label       : 'Popup',
        controller  : 'app.popup',
        controllerAs: '$ctrl',
        templateUrl : 'view/app/popup/popup.html'
    });
}).controller('app.popup', function ($scope, $ionicPopup) {
    var ctrl = this;
    ctrl.showPopup = ()=> {
        $ionicPopup.show({
            title   : 'Title',
            subTitle: 'subTitle',
            template: 'Show Template',
            scope   : null,
            buttons : [{
                text : '按钮一',
                type : 'button-dark',
                onTap: (e)=> {
                    e.preventDefault(); // popup 不会关闭
                }
            }, {
                text : '按钮二',
                type : 'button-default',
                onTap: ()=> {
                    return 2; // 此处 return 的值会在此 popup resolved
                }
            }, {
                text : '按钮三',
                type : 'button-positive',
                onTap: ()=> {
                    return 3; // 此处 return 的值会在此 popup resolved
                }
            }]
        }).then((val)=> {
            console.log(val);
        });
    };
    ctrl.showPrompt = ()=> {
        $ionicPopup.prompt({
            title           : '提示',
            template        : '确认密码',
            inputType       : 'password',
            maxLength       : 18,
            inputPlaceholder: '请输入密码',
            okText          : '确认',
            cancelText      : '取消'
        }).then((pass)=> {
            console.log(pass);
        });
    };
    ctrl.showConfirm = ()=> {
        $ionicPopup.confirm({
            title     : '提示',
            template  : '真的要离开了吗?',
            okText    : '确认',
            cancelText: '取消'
        }).then((confirm)=> {
            console.log(confirm); // true/false
        });
    };
    ctrl.showAlert = ()=> {
        $ionicPopup.alert({
            title   : '提示',
            template: 'Welcome!',
            okText  : '确定'
        }).then((val)=> {
            console.log(val); // true
        });
    };

    /////////////////////////////////////////////////
    // $ionicPopup
    /////////////////////////////////////////////////
    /**
     * show(options)
     * 显示一个复杂的 popup
     * - options
     *   - title
     *   - cssClass
     *   - subTitle
     *   - template
     *   - templateUrl
     *   - scope
     *   - buttons: 一个数组, 里面的每一个对象包含 text(按钮名称) type(按钮样式) onTap(按钮点击执行 function. function 含有一个 event 参数, event.preventDefault() 可以阻止 popup 关闭)
     * 返回一个 promise, 在 popup 关闭时会 resolved 返回值
     */

    /**
     * alert(options)
     * 显示一个 alert 样式的 popup
     * - options
     *   - title
     *   - cssClass
     *   - subTitle
     *   - template
     *   - templateUrl
     *   - okText: ok 按钮的名称, 默认 OK
     *   - okType: ok 按钮的样式, 默认 button-positive
     * 返回一个 promise, 在 popup 关闭时会 resolved 返回值
     */

    /**
     * confirm(options)
     * 显示一个 confirm 样式的 popup
     * - options
     *   - title
     *   - cssClass
     *   - subTitle
     *   - template
     *   - templateUrl
     *   - cancelText
     *   - cancelType
     *   - okText
     *   - okType
     * 返回一个 promise, 在 popup 关闭时会 resolved 返回值
     */

    /**
     * prompt(options)
     * 显示一个 prompt 样式的 popup
     * - options
     *   - title
     *   - cssClass
     *   - subTitle
     *   - template
     *   - templateUrl
     *   - inputType
     *   - defaultText
     *   - maxLength
     *   - inputPlaceholder
     *   - cancelText
     *   - cancelType
     *   - okText
     *   - okType
     * 返回一个 promise, 在 popup 关闭时会 resolved 返回值
     */
});